home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / blackfin / include / asm / trace.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.2 KB  |  95 lines

  1. /*
  2.  * Common header file for blackfin family of processors.
  3.  *
  4.  */
  5.  
  6. #ifndef _BLACKFIN_TRACE_
  7. #define _BLACKFIN_TRACE_
  8.  
  9. /* Normally, we use ON, but you can't turn on software expansion until
  10.  * interrupts subsystem is ready
  11.  */
  12.  
  13. #define BFIN_TRACE_INIT ((CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION << 4) | 0x03)
  14. #ifdef CONFIG_DEBUG_BFIN_HWTRACE_EXPAND
  15. #define BFIN_TRACE_ON   (BFIN_TRACE_INIT | (CONFIG_DEBUG_BFIN_HWTRACE_EXPAND << 2))
  16. #else
  17. #define BFIN_TRACE_ON   (BFIN_TRACE_INIT)
  18. #endif
  19.  
  20. #ifndef __ASSEMBLY__
  21. extern unsigned long trace_buff_offset;
  22. extern unsigned long software_trace_buff[];
  23.  
  24. /* Trace Macros for C files */
  25.  
  26. #ifdef CONFIG_DEBUG_BFIN_HWTRACE_ON
  27.  
  28. #define trace_buffer_save(x) \
  29.     do { \
  30.         (x) = bfin_read_TBUFCTL(); \
  31.         bfin_write_TBUFCTL((x) & ~TBUFEN); \
  32.     } while (0)
  33.  
  34. #define trace_buffer_restore(x) \
  35.     do { \
  36.         bfin_write_TBUFCTL((x));        \
  37.     } while (0)
  38. #else /* DEBUG_BFIN_HWTRACE_ON */
  39.  
  40. #define trace_buffer_save(x)
  41. #define trace_buffer_restore(x)
  42. #endif /* CONFIG_DEBUG_BFIN_HWTRACE_ON */
  43.  
  44. #else
  45. /* Trace Macros for Assembly files */
  46.  
  47. #ifdef CONFIG_DEBUG_BFIN_HWTRACE_ON
  48.  
  49. #define trace_buffer_stop(preg, dreg)    \
  50.     preg.L = LO(TBUFCTL);        \
  51.     preg.H = HI(TBUFCTL);        \
  52.     dreg = 0x1;            \
  53.     [preg] = dreg;
  54.  
  55. #define trace_buffer_init(preg, dreg) \
  56.     preg.L = LO(TBUFCTL);         \
  57.     preg.H = HI(TBUFCTL);         \
  58.     dreg = BFIN_TRACE_INIT;       \
  59.     [preg] = dreg;
  60.  
  61. #define trace_buffer_save(preg, dreg) \
  62.     preg.L = LO(TBUFCTL); \
  63.     preg.H = HI(TBUFCTL); \
  64.     dreg = [preg]; \
  65.     [--sp] = dreg; \
  66.     dreg = 0x1; \
  67.     [preg] = dreg;
  68.  
  69. #define trace_buffer_restore(preg, dreg) \
  70.     preg.L = LO(TBUFCTL); \
  71.     preg.H = HI(TBUFCTL); \
  72.     dreg = [sp++]; \
  73.     [preg] = dreg;
  74.  
  75. #else /* CONFIG_DEBUG_BFIN_HWTRACE_ON */
  76.  
  77. #define trace_buffer_stop(preg, dreg)
  78. #define trace_buffer_init(preg, dreg)
  79. #define trace_buffer_save(preg, dreg)
  80. #define trace_buffer_restore(preg, dreg)
  81.  
  82. #endif /* CONFIG_DEBUG_BFIN_HWTRACE_ON */
  83.  
  84. #ifdef CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE
  85. # define DEBUG_HWTRACE_SAVE(preg, dreg)    trace_buffer_save(preg, dreg)
  86. # define DEBUG_HWTRACE_RESTORE(preg, dreg) trace_buffer_restore(preg, dreg)
  87. #else
  88. # define DEBUG_HWTRACE_SAVE(preg, dreg)
  89. # define DEBUG_HWTRACE_RESTORE(preg, dreg)
  90. #endif
  91.  
  92. #endif /* __ASSEMBLY__ */
  93.  
  94. #endif                /* _BLACKFIN_TRACE_ */
  95.